Replace Conditional with Polymorphism
概述
用多态替换条件是一种重构技术,通过对象自己处理自己的行为来替换按类型分支的switch/条件逻辑。
关键内容
- 适用场景:
- 按类型分支的switch/条件逻辑
- 基于类型的条件判断
-
当需要根据不同类型执行不同行为时
-
实施步骤:
- 创建类层次(如果还没有)
- 用工厂函数创建对象
- 把条件逻辑移到超类方法里
- 给每种情况创建子类方法
-
删除原条件
-
实施效果:
- 让对象自己处理自己的行为
- 遵循开闭原则(对扩展开放,对修改封闭)
- 使代码更易于扩展新的类型
来源
- 重构目录 — refactoring-catalog.md
- [[]] —